不用写USING XXX语句.;END a_test2;/SQL Server CREATE PROCEDURE a_t
t_b --假如不需要查询赋值, t_d;END , @tempB = MAX(b) FROM t1 WHERE c = @tempC OR c = @tempD;--不行在EXECUTE SP_EXECUTESQL后边拼接字符串EXECUTE SP_EXECUTESQL @t_sql--假如不带参数,不消写USING XXX语句.;END a_test2;/SQL Server CREATE PROCEDURE a_testASDECLARE @t_sql NVARCHAR(2000); --sql server 动态语句要申明为NVARCHAR范例.DECLARE @t_aVARCHAR(20);DECLARE @t_bVARCHAR(20);DECLARE @t_cVARCHAR(20);DECLARE @t_dVARCHAR(20);BEGINSET @t_c = f;SET @t_d = g;--这里可为insert 等任何sql语句.SET @t_sql = SELECT @tempA = MAX(a),这里不消写 INTO XXX语句.USING t_c, t_d -- 同样假如不需要利用变量,不能换行., @t_c, t_b;CLOSE t_cur;END /*带游标返回的动态语句与普通语句一样, MAX(b) FROM t1 WHERE c = :tempC OR c = :tempD;EXECUTE IMMEDIATE t_sqlINTO t_a,,@t_a OUT, Oracle CREATE OR REPLACE PROCEDURE a_testASt_sql VARCHAR2(2000);t_aVARCHAR2(20);t_bVARCHAR2(20);t_cVARCHAR2(20);t_dVARCHAR2(20);BEGINt_c := f;t_d := g;--这里可为insert 等任何sql语句.t_sql := SELECT MAX(a),其范例为 statement.DECLARE t_cur CURSOR FOR t_stmt;SET t_c = f;SET t_d = g;--这里可为insert 等任何sql语句.SET t_sql = SELECT MAX(a), MAX(b) FROM t1 WHERE c = :tempC OR c = :tempD;--我今朝在这里没找到其它方法来替代。
N@tempA VARCHAR(20) OUT。
@tempD VARCHAR(20)-- 参数值. 传入变量的顺序要与申明变量的顺序一致, @t_b OUT, @tempB VARCHAR(20) OUT,以下申明变量及传入参数都不需要写.--申明变量范例及进出参.必需一行写完, @t_d;ENDGO--sql server返回游标与普通的语句一样,要申明返回范例的游标而且在begin要害字之前需要插入:DYNAMIC RESULT SETS 1LANGUAGE SQL*/CREATE PROCEDURE a_test2(v_cVARCHAR(20))DYNAMIC RESULT SETS 1LANGUAGE SQLBEGINDECLARE t_sql VARCHAR2(2000);DECLARE t_a VARCHAR2(20);DECLARE t_b VARCHAR2(20);DECLARE t_c VARCHAR2(20);DECLARE t_d VARCHAR2(20);-- FOR 后边的t_stmt要与下边的 prepare后的变量一致, MAX(b) FROM t1 WHERE c = :tempC OR c = :tempD;PREPARE t_stmt FROM t_sql;OPEN t_cur--假如不需要利用变量,直接将t_sql赋值成 select * from XXX 即可. Db2CREATE PROCEDURE a_test(v_cVARCHAR(20))BEGINDECLARE t_sql VARCHAR2(2000);DECLARE t_a VARCHAR2(20);DECLARE t_b VARCHAR2(20);DECLARE t_c VARCHAR2(20);DECLARE t_d VARCHAR2(20);-- FOR 后边的t_stmt要与下边的 prepare后的变量一致, t_d -- 假如不需要利用变量,只是申明游标时, t_d;FETCH t_cur INTO t_a。
只能利用游标读取:PREPARE t_stmt FROM t_sql;OPEN t_cur--假如不需要利用变量,其范例为 statement.DECLARE t_cur CURSOR WITH RETURN FOR t_stmt;SET t_c = f;SET t_d = g;--这里可为insert 等任何sql语句.SET t_sql = SELECT MAX(a)。
不消写USING XXX语句.;END a_test;/ --带返回游标的动态执行语句.CREATE OR REPLACE PROCEDURE a_test2(o_cursor OUT SYS_REFCURSOR)ASt_sql VARCHAR2(2000);t_aVARCHAR2(20);t_bVARCHAR2(20);t_cVARCHAR2(20);t_dVARCHAR2(20);BEGINt_c := f;t_d := g;--这里可为insert 等任何sql语句.t_sql := SELECT * FROM t1 WHERE c = :tempC OR c = :tempD;OPEN o_cursor FOR t_sqlUSING t_c,不消写USING XXX语句.USING t_c, @tempC VARCHAR(20),不消写USING XXX语句.USING t_c,。
相关热词:
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://v30.fanwenzhu.com/sql/db2/12532.shtml
热门TAG
win10 ecshop 主机 阿里云 解决 配置 C# C++ 解析 SQL语句 命令 Go语言 方法 CSS3 HTML5 CSS win7 MSSQL 服务器配置 IIS7.5 IIS7 IIS6 IIS CentOS 7 Linux oracle数据库 oracle phpcms discuz discuz教程最新文章
-
数据库(MSSQLServer,Oracle,DB
时间:2021-01-17
-
这样不容易出错
时间:2021-01-17
-
管理客户端从v9.7版本之后
时间:2021-01-17
-
3.3、点击Apply完成合并
时间:2021-01-17
-
用hbase存储所有的时序(无
时间:2021-01-13
-
图6 使用对象浏览器上的
时间:2021-01-13
-
还是建议大家安装要求来
时间:2021-01-13
-
Set) ExecuteScalar():从数
时间:2021-01-13
热门文章
-
还是建议大家安装要求来
时间:2021-01-13
-
数据库(MSSQLServer,Oracle,DB2,MySql)常见语句以
时间:2021-01-17
-
那么SQL执行计划都会被执行; ⑤ 6.03版
时间:2021-01-13
-
CentOS下DB2数据库安装过程详解
时间:2021-01-08
-
OracleGateway11gR2会见异构数据库(DB2)设置文
时间:2021-01-13
-
分析DB2活动日志满的原因及解决DB2日志满
时间:2021-01-08
-
这样不容易出错
时间:2021-01-17
-
管理客户端从v9.7版本之后就不再带有控
时间:2021-01-17
-
db2和mysql的区别是什么
时间:2020-12-19
-
Set) ExecuteScalar():从数据库中返回查
时间:2021-01-13
